<?php

namespace App\Http\Controllers\home;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;

class EvaluateController extends Controller
{

	/*
	*	商品评价页面
	*/
    public function getIndex(Request $request)
    {
        // 接收前一个页面（userorder）传过来的订单id和商品id
        $gid = $request -> input('gid');

        $id = $request -> input('id');

    	// 根据商品id查询my_order表中的信息
    	$data = DB::table('my_order') -> where('gid','=',$gid) -> where('id','=',$id) -> get();

    	// 根据my_order中的信息查询examine店铺信息
    	$data1 = DB::table('examine') -> where('username','=',$data[0]['merchant']) -> get();

    	// 查询goods_basis表中的商品信息
    	$data2 = DB::table('goods_basis') -> where('id','=',$data[0]['gid']) ->get();


        // 查询计算店铺评分
      
        $da = DB::table('evaluate') -> where('gid','=',$gid) -> avg('sscore');

        return view('/home/evaluate/index',['data'=>$data,'data1'=>$data1,'data2'=>$data2,'da'=>$da]);

    }

    /**
	*	将用户对商品的评价插入数据库
    */
    public function postInsert(Request $request)
    {
    	// 接收评价数据
    	$arr = $request -> except('_token');

    	// 判断数据是否为空
        if ($arr['content']=='') {
            return back() -> with('error','评价内容不能为空');
        }
        if (strlen($arr['num']) < 2) {
            return back() -> with('error','店铺或商品评分不能为空');
        } 
        // dd($arr);

        $a = DB::table('user') -> where('username','=',session('homeusername')) -> get();
        
        // 数据处理
    	$array['sscore'] = substr($arr['num'],0,1);
    	$array['score'] = substr($arr['num'],1);

    	$array['content'] = trim($arr['content']);
    	$array['writer'] = session('homeusername');
    	$array['ctime'] = time();
    	$array['gid'] = $arr['gid'];
        $array['sid'] = $arr['sid'];
    	$array['oid'] = $arr['oid'];
        $array['uid'] = $a[0]['id'];


    	// 插入数据库
    	$res = DB::table('evaluate') -> insert($array);
    	// dd($res);


    	// 判断返回的影响行数 把操作的结果压入session
	    if ($res) {

            // 插入成功则更新goods_basis表中的商品评分
            $data = DB::table('evaluate') -> where('gid','=',$arr['gid']) -> avg('score');
           
            DB::table('goods_basis') -> where('id','=',$arr['gid']) -> update(['evaulate'=>$data]);
	        return  back() -> with('success','评价成功');
	    }else{
	        return back() -> with('error','评价失败');
	    }

    }

}
